iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
1
Modern Web

認識LIFF容易嗎?系列 第 19

[Day 19] LIFF PermanentLink.createUrl

  • 分享至 

  • xImage
  •  

前言

先前曾介紹LIFF URL們,今天再來認識新的URL吧!

liff.permanentLink.createUrl()

取得當前頁面的Permanent Link。

關於Permanent Link

首先來認識一下Permanent Link的組成:
LIFF URL + (LINE MINI App URL - Endpoint URL) = Permanent Link

例如,當LIFF URL、LINE MINI App URL與Endpoint URL,分別是:

  • LIFF URL: https://liff.line.me/123456-abcedfg
  • URL of the LINE MINI App page: https://example.com/shop?search=shoes#item10
  • Endpoint URL: https://example.com

Permanent Link 即是
https://liff.line.me/123456-abcedfg/shop?search=shoes#item10

結構大致是
https://liff.line.me/{liffId}/{path}?{query}#{URL fragment}

注意

這裡留意到Permanent Link的結構,其實與Line Developers Console的設定有關。
也就是在LIFF Init 與 URL們,曾有提過Methods for converting additional information in the LIFF URL的設定。
當這欄位的設定是Replace/2020campaign/?key=value可能不包含在Secondary redirect URL,
如此可能無法成功取得Permanent Link。

實作

liff.init({
 liffId: '後台取得的LIFF ID'
}) .then(() => {
   const myLink = liff.permanentLink.createUrl()
   console.log('liff.permanentLink.createUrl', myLink);
}
}).catch((err) => {
 console.log('初始化失敗')
});

在這裡有試著把liff.permanentLink.createUrl(),放在liff.init()前、後執行。
當在liff.init()前執行,因為LIFF APP未被初始化,無法取得LiffId
因此得到的Permanent Link是https://liff.line.me/undefined/Home/Index

反之在liff.init()後執行,會得到https://liff.line.me/{myLiffId}/Home/Index
image

想問一下,Permanent Link要做什麼?

看到它的組成與LINE MINI App有關,明天和你說。

參考


上一篇
[Day 18] LIFF GetFriendship
下一篇
[Day 20] LIFF PermanentLink.setExtraQueryParam
系列文
認識LIFF容易嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言